Electronic data-storage components and systems are integral components and subsystems of modem computing environments, including large distributed computing systems containing multiple networked computers and multiple networked data-storage subsystems. In early computers, data was principally stored in various types of electronic memory within individual stand-alone computers. Mass-storage devices were subsequently developed, including magnetic-tape and disk-storage devices, to provide for greater storage capacities, non-volatile data storage, and transportable stored data. Mass-storage devices have evolved as quickly as, and, in certain cases, even more rapidly than computer processors and computer systems. The densities at which data can be stored on disk-platter surfaces and optical-disk surfaces has increased even more quickly than the densities at which integrated-circuit components, such as transistors, can be manufactured on the surfaces of silicon dies.
Not only have the densities at which data can be stored increased rapidly, over the past decades, but the functionalities of mass-storage devices have also rapidly evolved. Network data-storage devices and systems, such as disk arrays, currently provide enormous data-storage capacities as well as flexible and powerful interfaces for storing and managing data by remote host computers. In many cases, these high-end data-storage systems provide logical-unit-based interfaces that allow host computers to create various types of logical units that are mapped, by data-storage-device controllers, through various levels of interfaces to mass-storage devices and data-block addresses within mass-storage devices. Logical units, including logical disks, may be automatically mirrored or redundantly stored according to various types of redundancy schemes, including erasure-coding or parity-encoding redundancy schemes. Moreover, logical units may be automatically geographically dispersed, automatically archived, and associated with various other features and facilities provided by data-storage systems. Disk arrays and other high-end data-storage systems that provide logical-unit interfaces to host computers may provide a variety of different types of operations that can be carried out on, or directed to, logical units, including data-access operations, such as READ and WRITE operations, and many different types of management operations, including operations for configuring logical disks, initializing or reinitializing logical disks, and requesting current values and setting values of various operational and control parameters.
Computer systems which access data-storage systems through communications media have also evolved, over time. These computer systems may support various types of data-storage-system-management applications, which allow system administrators and other users to configure and maintain data-storage systems remotely through various types of graphical management interfaces. Complex systems developed for operation in execution environments provided by operating systems running directly above physical computer hardware may now, instead, run in execution environments provided by operating systems running within the context of a virtual machine above a virtual-machine monitor that executes immediately above the hardware level of one or more physical systems. The evolution of host systems is often relatively independent from the evolution of remote data-storage systems accessed by the host systems. Because the data-storage systems provide well-defined management and data-access interfaces, host systems may freely evolve as long as they continue to interoperate with data-storage systems through well-known data-storage-system interfaces. However, as host systems become more complex, and run within more complex computational environments, additional control layers and interfaces may be interposed between host systems and data-storage-system interfaces provided by data-storage systems that can complicate or frustrate interoperation of host systems and data-storage systems. Ongoing research and development efforts are directed to preserving host-system interoperability with data-storage systems in rapidly evolving computational environments.